package pe.com.bbva.modpre.persistencia.hibernate;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import pe.com.bbva.modpre.dominio.Solicitud;
import pe.com.bbva.modpre.dominio.Usuario;
import pe.com.bbva.modpre.persistencia.SolicitudDAO;

@Repository
@SuppressWarnings("serial")
public class SolicitudHibernate extends BaseHibernate<Solicitud, Long> 
implements SolicitudDAO {
	
	@Autowired
	public SolicitudHibernate(SessionFactory sessionFactory){
		setSessionFactory(sessionFactory);
	}

	@Override
	public List<Solicitud> listaSolicitudes(String nombres,String numdoc,String tipodoi) {

		numdoc = "%"+numdoc+"%";
		nombres = "%"+nombres+"%";
		long est =  Long.parseLong(tipodoi); 
		
		return buscarHql("select s from Solicitud s where lower(cliente.nombres||' '||cliente.paterno||' '||cliente.materno) like lower(?) and numero like ? and cliente.tipoDoi.id=?",nombres,numdoc,est);
	}
	
	@Override
	public List<Solicitud> listaSolicitudesResponsable(Usuario usuario) {
		long a= usuario.getId();
		return buscarHql("select s from Solicitud s where responsable.id = ?",a);
	}

	@Override
	public String obtenerUltimoNumeroSolicitud(String numero) {
		return (String) obtenerDatoHql("select max(numero) from Solicitud where numero like ?", numero+"%");
	}

}
